<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>WSHサポートしたものの問題が... | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀ANSI版開発トップへ</a>
        <li><div class="list-title">
    <span class="no">2283</span>
    <a class="thread-title" href="2283.html#2283">WSHサポートしたものの問題が...</a></div>
    <ul><li><div class="list-title">
    <span class="no">2284</span>
    <a class="thread-title" href="2283.html#2284">Re:WSHサポートしたものの問題が...</a></div>
    <ul><li><div class="list-title">
    <span class="no">2285</span>
    <a class="thread-title" href="2283.html#2285">Re2:WSHサポートしたものの問題が... </a></div>
    </li><li><div class="list-title">
    <span class="no">2286</span>
    <a class="thread-title" href="2283.html#2286">Re2:WSHサポートしたものの問題が... </a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">2288</span>
    <a class="thread-title" href="2283.html#2288">Re:WSHサポートしたものの問題が...</a></div>
    </li><li><div class="list-title">
    <span class="no">2289</span>
    <a class="thread-title" href="2283.html#2289">Re:WSHサポートしたものの問題が...</a></div>
    </li><li><div class="list-title">
    <span class="no">2292</span>
    <a class="thread-title" href="2283.html#2292">Re:WSHサポートしたものの問題が...</a></div>
    <ul><li><div class="list-title">
    <span class="no">2293</span>
    <a class="thread-title" href="2283.html#2293">Re2:WSHサポートしたものの問題が...</a></div>
    </li><li><div class="list-title">
    <span class="no">2298</span>
    <a class="thread-title" href="2283.html#2298">Re2:WSHサポートしたものの問題が... </a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">2296</span>
    <a class="thread-title" href="2283.html#2296">Re:WSHサポートしたものの問題が...</a></div>
    <ul><li><div class="list-title">
    <span class="no">2297</span>
    <a class="thread-title" href="2283.html#2297">Re2:WSHサポートしたものの問題が...</a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">3347</span>
    <a class="thread-title" href="2283.html#3347">RE: WSHサポートしたものの問題が... </a></div>
    <ul><li><div class="list-title">
    <span class="no">3354</span>
    <a class="thread-title" href="2283.html#3354">Re2: WSHサポートしたものの問題が... </a></div>
    </li><li><div class="list-title">
    <span class="no">3356</span>
    <a class="thread-title" href="2283.html#3356">Re2: WSHサポートしたものの問題が... </a></div>
    </li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=2283>
    <span class="no">[2283]</span>
    <a class="thread-title" href="#2283">WSHサポートしたものの問題が...</a>
    <span class="author">げんた</span>
    <time datetime="2002-08-26T02:09:10">2002年08月26日 02:09</time></h1>
    <div class="body">2ヶ月以上遅れてしまいましたが，WSHマクロのサポートを組み込みました．<br><br>5月に案を出した割には結局それは全然できていませんで，拡張子－Engineの対応表の他にEngineのみのリストを追加して，拡張子を全部登録するのと逐次問い合わせるのを選択できるようにしました．<br><br>まず対応表を調べた後，見つからなければEngineを1つずつ当たっていきます．NULLじゃない値が返されたら対応するエンジンが見つかったとしてそれを対応表に記録して次回以降は表引きできるようにしました．<br><br>--<br>で，問題のWSHですが，制御文やEditor.method()というのは動くのですがVBScript標準のメソッドがうまく動きません．<br><br>MsgBoxとかInputBoxとかを試そうとしたのですが，書き込みできませんというメッセージが出てしまいます．この辺わかる方いらっしゃいますか？<br><br>ソースとバイナリを置いておきます．<br><a href=http://sakura-editor.sourceforge.net/snapshot/ssrc_2002-08-26_wsh1.tar.bz2 target=_top><nobr>http://<wbr>sakura-<wbr>editor.<wbr>sourcefo<wbr>rge.<wbr>net/<wbr>snapshot<wbr>/<wbr>ssrc_200<wbr>2-<wbr>08-<wbr>26_wsh1.<wbr>tar.<wbr>bz2</nobr></a><br><a href=http://sakura-editor.sourceforge.net/snapshot/sakura_2002-08-26_wsh1.zip target=_top><nobr>http://<wbr>sakura-<wbr>editor.<wbr>sourcefo<wbr>rge.<wbr>net/<wbr>snapshot<wbr>/<wbr>sakura_2<wbr>002-<wbr>08-<wbr>26_wsh1.<wbr>zip</nobr></a><br></div></section>
    <ul><li><section><h1 id=2284>
    <span class="no">[2284]</span>
    <a class="thread-title" href="#2284">Re:WSHサポートしたものの問題が...</a>
    <span class="author">おに</span>
    <time datetime="2002-08-28T08:10:59">2002年08月28日 08:10</time></h1>
    <div class="body">お久しぶりです。<br><br>Editor.Insert("123")だけのマクロを作って試してみようとしたのですが、0x00000074のメモリを参照しようとして、エディタごと落ちました。<br>空のファイルで試しても同様でした。<br><br>Win2000 SP2です。おっかしいなあ…<br>(調査をしようにも、自分が書いたコードなのに忘れかけてます;_;)</div></section>
    <ul><li><section><h1 id=2285>
    <span class="no">[2285]</span>
    <a class="thread-title" href="#2285">Re2:WSHサポートしたものの問題が... </a>
    <span class="author">げんた</span>
    <time datetime="2002-08-28T10:11:01">2002年08月28日 10:11</time></h1>
    <div class="body">&gt;0x00000074のメモリを参照しようとして、エディタごと落ちました。<br>ありゃ．ほんと．<br><br>でもDebugモードでコンパイルしたらそれなりに動くんですよね．<br>ポインタ周りのバグかな．また見てみます．<br></div></section>
    </li><li><section><h1 id=2286>
    <span class="no">[2286]</span>
    <a class="thread-title" href="#2286">Re2:WSHサポートしたものの問題が... </a>
    <span class="author">げんた</span>
    <time datetime="2002-08-29T01:10:22">2002年08月29日 01:10</time></h1>
    <div class="body">&gt;0x00000074のメモリを参照しようとして、エディタごと落ちました。<br>すいません．配列の番人の値を0から-1に変えたのを忘れていました．<br><br>CWSH.cppの626行目 CWSHMacroManager::ReadyCommandsの<br>while(Info-&gt;m_nFuncID != 0 )<br>を<br>while(Info-&gt;m_nFuncID != -1)<br>にする必要がありました．<br><br>修正した物をUPしました．<br><a href=http://sakura-editor.sourceforge.net/snapshot/ssrc_2002-08-29_wsh2.tar.bz2 target=_top><nobr>http://<wbr>sakura-<wbr>editor.<wbr>sourcefo<wbr>rge.<wbr>net/<wbr>snapshot<wbr>/<wbr>ssrc_200<wbr>2-<wbr>08-<wbr>29_wsh2.<wbr>tar.<wbr>bz2</nobr></a><br><a href=http://sakura-editor.sourceforge.net/snapshot/sakura_2002-08-29_wsh2.zip target=_top><nobr>http://<wbr>sakura-<wbr>editor.<wbr>sourcefo<wbr>rge.<wbr>net/<wbr>snapshot<wbr>/<wbr>sakura_2<wbr>002-<wbr>08-<wbr>29_wsh2.<wbr>zip</nobr></a><br></div></section>
    </li></ul></li><li><section><h1 id=2288>
    <span class="no">[2288]</span>
    <a class="thread-title" href="#2288">Re:WSHサポートしたものの問題が...</a>
    <span class="author">Youma</span>
    <time datetime="2002-08-30T10:33:02">2002年08月30日 10:33</time></h1>
    <div class="body">▼ げんたさん<br>&gt; 2ヶ月以上遅れてしまいましたが，WSHマクロのサポートを組み込みました．<br><br>うーん、自分の得意？分野でのマクロ作成が可能に<br>なりそうなので、ひっじょーに、期待してます（嬉）<br><br>WSHで対応すると、予想以上に色々な事が出来るように<br>…なるよーな、ならないよーな（知識不足）<br><br>リリースされるのを、キリン状態でお待ちしております。<br>頑張ってください。</div></section>
    </li><li><section><h1 id=2289>
    <span class="no">[2289]</span>
    <a class="thread-title" href="#2289">Re:WSHサポートしたものの問題が...</a>
    <span class="author">おに</span>
    <time datetime="2002-08-30T19:07:30">2002年08月30日 19:07</time></h1>
    <div class="body">&gt; MsgBoxとかInputBoxとかを試そうとしたのですが，書き込みできませんというメッセージが出てしまいます．この辺わかる方いらっしゃいますか？<br><br>単なる思いつきですが、ダイアログを出すにはウィンドウハンドルが必要になるので、IActiveScriptSiteWindowの実装が必要かも。<br>(外しているかも)<br>暇を見て実験してみます。<br></div></section>
    </li><li><section><h1 id=2292>
    <span class="no">[2292]</span>
    <a class="thread-title" href="#2292">Re:WSHサポートしたものの問題が...</a>
    <span class="author">dfft</span>
    <time datetime="2002-09-03T15:38:57">2002年09月03日 15:38</time></h1>
    <div class="body">▼ げんたさん<br>&gt; 5月に案を出した割には結局それは全然できていませんで，拡張子－Engineの対応表の他にEngineのみのリストを追加して，拡張子を全部登録するのと逐次問い合わせるのを選択できるようにしました．<br><br>  はじめまして。こちらのソースをDLいたしまして、[2286]の修正を行った後、以下のスクリプトを試してみました。<br>(1)VBScript<br>Set FSO = CreateObject("Scripting.FileSystemObject")<br>Set strm = FSO.CreateTextFile("a.txt")<br>(2)JScript<br>var FSO = WScript.CreateObject("Scripting.FileSystemObject")<br>var strm = FSO.CreateTextFile("a.txt")<br>(1)は正常終了し、空のファイルa.txtが作成されました。<br>(2)については、「'WScript'は宣言されていません。」<br>とエラーメッセージが出力され、ファイルa.txtは作成されませんでした。<br>  OSバージョンはWindows2000SP1、<br>  WSHは5.6です。<br><br><br>  また、カーソルのある現在行を取得し、Result-&gt;bstrValにBSTRオブジェクトとして代入する<br>マクロ、F_GET_CURRENT_LINEを試作しましたが、F_GETFILENAMEと同様に、<br>CWSH::MacroCommand()内で実装するという方式にせざるを得ませんで<br>した(CEditView::Command_GETCURRENTLINEを追加するべきかとも考えたのです<br>が)。より良い方法について御示唆いただければ幸いです。<br></div></section>
    <ul><li><section><h1 id=2293>
    <span class="no">[2293]</span>
    <a class="thread-title" href="#2293">Re2:WSHサポートしたものの問題が...</a>
    <span class="author">おに</span>
    <time datetime="2002-09-04T21:40:37">2002年09月04日 21:40</time></h1>
    <div class="body">▼ dfftさん<br>&gt; (2)JScript<br>&gt; var FSO = WScript.CreateObject("Scripting.FileSystemObject")<br><br>"WScript"は、cscript.exe/wscript.exeが渡して来るオブジェクトなので、ここでは使えません。<br>JScriptからはActiveXObjectで試していただけませんか？<br><br>…まだ何も試せていません。＼(_ _</div></section>
    </li><li><section><h1 id=2298>
    <span class="no">[2298]</span>
    <a class="thread-title" href="#2298">Re2:WSHサポートしたものの問題が... </a>
    <span class="author">げんた</span>
    <time datetime="2002-09-09T15:38:48">2002年09月09日 15:38</time></h1>
    <div class="body">&gt;CWSH::MacroCommand()内で実装するという方式にせざるを得ませんでした<br>現時点では他にやりようが無いように思います．<br><br>&gt;(CEditView::Command_GETCURRENTLINEを追加するべきかとも考えたのですが)。<br>CEditView::HandleCommandは値を返すことを前提にしていないので無理だと思います．<br><br>&gt; より良い方法について御示唆いただければ幸いです。<br>WSHではオブジェクトを扱えるので，オブジェクト＋メソッドという形にできればいいんじゃないかと思いますが．<br></div></section>
    </li></ul></li><li><section><h1 id=2296>
    <span class="no">[2296]</span>
    <a class="thread-title" href="#2296">Re:WSHサポートしたものの問題が...</a>
    <span class="author">dfft</span>
    <time datetime="2002-09-06T19:02:33">2002年09月06日 19:02</time></h1>
    <div class="body">▼ げんたさん<br>記録したキーマクロをもとに、WSHマクロを動かしてみたの<br>ですが、引数が逆順に解釈されるようですね。<br>エディタヴァージョン:sakura_2002-08-29<br>OS                  :Winsows2000 SP1<br>Compiler            :VisualStudio Ver6.0<br><br>エディタの内容が<br>123456<br>であるとき、JScriptマクロにて<br>Editor.ReplaceAll('1','a',0);<br>では1をaに変換せず、<br>Editor.ReplaceAll(0,'a','1');<br>と記述すると、うまく行きました。<br><br></div></section>
    <ul><li><section><h1 id=2297>
    <span class="no">[2297]</span>
    <a class="thread-title" href="#2297">Re2:WSHサポートしたものの問題が...</a>
    <span class="author">おに</span>
    <time datetime="2002-09-08T02:41:52">2002年09月08日 02:41</time></h1>
    <div class="body">単純に逆にしてみました。<br><br>CWSH.cpp 424行<br>&gt; Info-&gt;Arguments[I].tdesc.vt = ArgumentTypes[I];<br>Info-&gt;Arguments[I].tdesc.vt = ArgumentTypes[ArgumentCount - I - 1];<br><br>CWSH.cpp 543行<br>&gt; StrArgs[I] = S;<br>StrArgs[ArgCount - I - 1] = S;<br><br>何ででしょうね？<br><br>追伸。makefileにCWSH.objを書き足す必要があります。</div></section>
    </li></ul></li><li><section><h1 id=3347>
    <span class="no">[3347]</span>
    <a class="thread-title" href="#3347">RE: WSHサポートしたものの問題が... </a>
    <span class="author">みく</span>
    <time datetime="2004-01-07T22:04:26">2004年01月07日 22:04</time></h1>
    <div class="body"><br>&gt;MsgBoxとかInputBoxとかを試そうとしたのですが，書き込みできませんというメッセージが出てしまいます．この辺わかる方いらっしゃいますか？<br><br>class CWSHSite public ImplementsIUnknown&lt;IActiveScriptSite&gt;,<br>               public ImplementsIUnknown&lt;IActiveScriptSiteWindow&gt; {<br><br>として、<br><br>public:<br>    HRESULT STDMETHODCALLTYPE GetWindow( <br>        /* [out] */ HWND *phwnd) {<br>        if( phwnd ){<br>            *phwnd = NULL;  //とりあえずNULLで...<br>            return S_OK;<br>        }<br>        return E_POINTER;<br>    }<br><br>    HRESULT STDMETHODCALLTYPE EnableModeless( <br>        /* [in] */ BOOL fEnable) {<br>        return S_OK;<br>    }<br><br>を追加する。そして、<br>CWSHSite の QueryInterface()で、<br><br>    else if(IsEqualIID(iid, IID_IActiveScriptSiteWindow))<br>    {<br>        AddRef();<br>        *ppvObject = static_cast&lt;IActiveScriptSiteWindow*&gt;(this);  //ここ大事<br>        return S_OK;<br>    }<br><br>とすれば、MsgBox とかが使えるようになるはずです。<br><br>あと、CMacroManagerBase* CWSHMacroManager::Creator<br>のMultiByteToWideCharの引数6番目おかしくないですか。<br></div></section>
    <ul><li><section><h1 id=3354>
    <span class="no">[3354]</span>
    <a class="thread-title" href="#3354">Re2: WSHサポートしたものの問題が... </a>
    <span class="author">おに</span>
    <time datetime="2004-01-11T16:32:57">2004年01月11日 16:32</time></h1>
    <div class="body">ImplementsIUnknownが参照カウントを管理してますので、多重継承するとまずい気が…。</div></section>
    </li><li><section><h1 id=3356>
    <span class="no">[3356]</span>
    <a class="thread-title" href="#3356">Re2: WSHサポートしたものの問題が... </a>
    <span class="author">もか</span>
    <time datetime="2004-01-11T17:48:43">2004年01月11日 17:48</time></h1>
    <div class="body">&gt;あと、CMacroManagerBase* CWSHMacroManager::Creator<br>&gt;のMultiByteToWideCharの引数6番目おかしくないですか。<br><br>▼CWSH.cpp 1.7 2003/11/15<br>&gt;MultiByteToWideChar(<br>&gt; CP_ACP, 0, EngineName, -1, EngineNameW,<br>&gt; sizeof(EngineNameW) / sizeof(wchar_t)<br>&gt;);<br>で、6番目は<br>▼MSDN 2001年7月(jp/en)<br>&gt;cchWideChar<br>&gt;バッファのサイズをワイド文字数の単位で指定します。<br>&gt;[in] Specifies the size, in wide characters, of the buffer ...<br>なので、配列数で指定します。また、<br>&gt;cbMultiByte<br>&gt;(日本語版には下記の記述なし)<br>&gt;If this parameter is -1, the function processes the entire input string including the null terminator.<br>&gt;The resulting wide character string therefore has a null terminator, and the returned length includes the null terminator.<br>とのことで、末尾のNULも変換の対象範囲に含まれると読めます。<br>以上により、正しいような気がします。<br></div></section>
    </li></ul></li></ul></li></ul></body></html>